package guoanmaker.operator.business.controller;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import guoanmaker.operator.business.model.ReturnResult;
import guoanmaker.operator.business.service.OperatorTrademarkSearchByUserLogsServiceInterface;
import guoanmaker.operator.business.service.TrademarkAndPatentSearchService;
import guoanmaker.operator.helper.common.AjaxJson;
import guoanmaker.operator.helper.common.abstractobj.ApiController;
import io.swagger.annotations.ApiOperation;

/**
 * 
 * @author zj
 *
 */



@RestController
@RequestMapping(ApiController.MESSAGE_URL)
public class OperatorTrademarkAndPatentSearchController {
	
	
	  
	  
	  @Resource
	  private TrademarkAndPatentSearchService  trademarkAndPatentSearchService;
	  @Autowired
	  private OperatorTrademarkSearchByUserLogsServiceInterface trademarkSearchByUserLogsServiceInterface;
	
	/**
	 * 获取指定商标的详细信息
	 */
	@ApiOperation(value = "获取指定商标的详细信息")  
	@RequestMapping(value ="selectTrademarkInfo",method = RequestMethod.POST)
	public  AjaxJson  selectTrademarkInfo(String id,String keyword, String regNo,Integer intCls){
		AjaxJson ajaxJson=new AjaxJson();
		ReturnResult returnResult = new ReturnResult();
		try {
			returnResult =  trademarkAndPatentSearchService.selectTrademarkInfo(id,keyword,regNo,intCls);
			ajaxJson.setSuccess(true).setStatus(200).setMsg("操作成功").setData(returnResult);
		} catch (Exception e) {
			e.printStackTrace();
			ajaxJson.setSuccess(false).setStatus(500).setMsg("操作失败").setData(returnResult);
		}
	 
	  return  ajaxJson;	
		
	}   
	
	/**
	 *获取token
	 */
	/**
	 * 获取指定商标的详细信息
	 */
	@ApiOperation(value = "获取token",notes="根据用户名/密码获取token")  
	@RequestMapping(value ="getToken",method = RequestMethod.POST)
	public  AjaxJson  getToken(){
		AjaxJson ajaxJson=new AjaxJson();
		ReturnResult returnResult = new ReturnResult();
		try {
			returnResult =  trademarkAndPatentSearchService.getToken();
			ajaxJson.setSuccess(true).setStatus(200).setMsg("操作成功").setData(returnResult);
		} catch (Exception e) {
			e.printStackTrace();
			ajaxJson.setSuccess(false).setStatus(500).setMsg("操作失败").setData(returnResult);
		}
	 
	  return  ajaxJson;	
		
	} 
	
	/**
	 * 给定关键字，查询商标名/注册号/申请人中含有该关键字的商标列表
	 *@param @param apiKey				标库网分配给您的apiKey
	 * @param @param apiPassword		标库网分配给您的apiPassword
	 * @param @param keyword			查询关键词
	 * ***del***@param @param pageSize			分页查询每页查询数据条数	0不分页
	 * ***del***@param @param pageNo				分页查询页数		pageSize=0  改参数不起作用
	 * ***del***@param @param searchType			查询方式：		1: 商标名， 2：注册号， 3：申请人 4：商标名/注册号/申请人只要匹配到就算
	 * ***del***@param @param intCls				国际分类		0：全部国际分类	非0：限定在指定类别，类别间用分号分割。如：4;12;34  表示在第4、12、34类内查询
	 */
	@ApiOperation(value="给定关键字，查询商标名/注册号/申请人中含有该关键字的商标列表" ,notes="关键字查询商标列表，商标查询关键字不允许出现特殊字符，查询次数为0返回error，查询特殊字符及其他则返回error_or,否则返回正常数据")
	@RequestMapping(value="selectTrademarks" ,method=RequestMethod.POST)
	public AjaxJson selectTrademarks(String id ,String keyword ,Integer currentPage,Integer pageSize){
		AjaxJson ajaxJson=new AjaxJson();
		ReturnResult returnResult = new ReturnResult();
		try {
			returnResult = trademarkAndPatentSearchService.selectTrademarkList(id ,keyword, pageSize, currentPage, 0);
			ajaxJson.setSuccess(true).setStatus(200).setMsg("操作成功").setData(returnResult);
		} catch (Exception e) {
			e.printStackTrace();
			ajaxJson.setSuccess(false).setStatus(500).setMsg("操作失败").setData(returnResult);
		}
		return ajaxJson;
	}
	
	/**
	 * 
	* @Title: selectTrademarkSearchLog 
	* @Description: TODO(商标接口历史查询记录) 
	* @param @return    入参
	* @return AjaxJson    返回类型
	* @author （ZhangXinYu） 
	* @throws
	* @date 2017年12月15日 上午8:55:15 
	* @version V1.0
	 */
	@ApiOperation(value="接口调用详情查询" ,notes="查询用户调用商标查询接口记录信息")
	@RequestMapping(value="trademarkSearchLog" ,method=RequestMethod.POST)
	public AjaxJson selectTrademarkSearchLog(String name , String phone , String keyword , String startDate , String endDate , Integer currentPage , Integer pageSize){
		AjaxJson ajaxJson=new AjaxJson();
		ReturnResult returnResult = new ReturnResult();
		try{
			returnResult = trademarkAndPatentSearchService.trademarkSearchLog(name,phone,keyword,startDate,endDate,currentPage,pageSize);
			ajaxJson.setSuccess(true).setStatus(200).setMsg("操作成功").setData(returnResult);
		}catch (Exception e) {
			e.printStackTrace();
			ajaxJson.setSuccess(false).setStatus(500).setMsg("操作失败").setData(returnResult);
		}
		return ajaxJson;
	}
	
	/**
	 * 
	* @Title: trademarkLogCount 
	* @Description: TODO(商标接口查询记录总数) 
	* @param @return    入参
	* @return AjaxJson    返回类型
	* @author （ZhangXinYu） 
	* @throws
	* @date 2017年12月17日 下午5:34:42 
	* @version V1.0
	 */
	@ApiOperation(value="商标接口查询记录总数",notes="商标接口查询接口总数")
	@PostMapping("/trademarkLogCount")
	public AjaxJson trademarkLogCount(){
		AjaxJson ajaxJson=new AjaxJson();
		return ajaxJson.setSuccess(true).setStatus(200).setMsg("操作成功").setData(trademarkAndPatentSearchService.trademarkLogCount());
	}
	
	@ApiOperation(value="商标剩余查询次数",notes="商标接口剩余查询次数")
	@PostMapping("/trademarkRemainCount")
	public AjaxJson trademarkRemainCount(){
		AjaxJson ajaxJson=new AjaxJson();
		return ajaxJson.setSuccess(true).setStatus(200).setMsg("操作成功").setData(trademarkAndPatentSearchService.trademarkRemainCount());
	}
	
	@ApiOperation(value="删除用户缓存表中详情信息",notes="删除详情信息")
	@PostMapping("/removeTrademarkInfoLogs")
	public AjaxJson removeTrademarkInLogs(String userid){
		AjaxJson ajaxJson=new AjaxJson();
		return ajaxJson.setSuccess(true).setStatus(200).setMsg("操作成功").setData(trademarkSearchByUserLogsServiceInterface.deleteSearchLogs(userid));
	}

}
